Algorithms: Design and Analysis (Part II)

Table of Contents

homepage

Syllabus

textbooks

  • CLRS - Cormen, Leiserson, Rivest, and Stein, Introdution to Algorithms (3rd edition)
  • DPV - Dasgupta, Papadimitriou, and Vazirani, Algorithms
  • KT - Kleinberg and Tardos, Algorithm Design
  • SW - Sedgewick and Wayne, Algorithms (4th edition)

December 3-9

  • Topics
    • Two Motivating Applications (Sequence Alignment and Internet Routing)
    • Selected Review from Part I (Optional)
    • Introduction to Greedy Algorithms
    • A Scheduling Application
    • Prim's Minimum Spanning Tree Algorithm
  • Suggested Readings:
    • CLRS: Chapter 16 (Sections 1 and 2) and Chapter 23
    • DPV: Sections 5.1.1, 5.1.2, and 5.1.5
    • KT: Sections 4.1, 4.2, 4.3, and 4.5
    • SW: Section 4.3

December 10-16

  • Topics
    • Kruskal's Minimum Spanning Tree Algorithm, with Applications to Clustering
    • Advanced Topics on the Union-Find Data Structure (Optional)
    • Huffman Codes
  • Suggested Readings:
    • CLRS Chapter 16 (Section 3), Chapter 21, and Chapter 23 (Section 2)
    • DPV Sections 5.1.3, 5.1.4, and 5.2
    • KT Sections 4.5-4.8
    • SW Section 1.5, 4.3, and 5.5

December 17-23

  • Topics
    • Dynamic Programming and Applications
    • The Knapsack Problem
    • Sequence Alignment
    • Optimal Search Trees

Theory (Optional) Problems

The following problems are for those of you looking to challenge yourself beyond the required problem sets and programming questions. Most of these have been given in Stanford's CS161 course, Design and Analysis of Algorithms, at some point. They are completely optional and will not be graded. While they vary in level, many are pretty challenging, and we strongly encourage you to discuss ideas and approaches with your fellow students on the "Theory Problems" discussion forum.

  • [Posted December 2, 2012.] Consider a connected undirected graph G with not necessarily distinct edge costs. Consider two different minimum-cost spanning trees of G, T and T′. Is there necessarily a sequence of minimum-cost spanning trees T=T0,T1,T2,…,Tr=T′ with the property that each consequence pair Ti,Ti+1 of MSTs differ by only a single edge swap? Prove the statement or exhibit a counterexample.
  • [Posted December 2, 2012.] Consider the following algorithm. The input is a connected undirected graph with edge costs (distinct, if you prefer). The algorithm proceeds in iterations. If the current graph is a spanning tree, then the algorithm halts. Otherwise, it picks an arbitrary cycle of the current graph and deletes the most expensive edge on the cycle. Is this algorithm guaranteed to compute a minimum-cost spanning tree? Prove it or exhibit a counterexample.
  • [Posted December 2, 2012.] Consider the following algorithm. The input is a connected undirected graph with edge costs (distinct, if you prefer). The algorithm proceeds in phases. Each phase adds some edges to a tree-so-far and reduces the number of vertices in the graph (when there is only 1 vertex left, the MST is just the empty set). In a phase, we identify the cheapest edge ev incident on each vertex v of the current graph. Let F={ev} be the collection of all such edges in the current phase. Obtain a new (smaller) graph by contracting all of the edges in F — so that each connected component of F becomes a single vertex in the new graph — discarding any self-loops that result. Let T denote the union of all edges that ever get contracted in a phase of this algorithm. Is T guaranteed to be a minimum-cost spanning tree? Prove it or exhibit a counterexample.
  • [Posted December 2, 2012.] Recall the definition of a minimum bottleneck spanning tree from Problem Set #1. Give a linear-time (i.e., O(m)) algorithm for computing a minimum bottleneck spanning tree of a connected undirected graph.

Courses Notes

December 3-9

  • Two applications
    • Internet Routing (send one email to another)
    • Sequence Alignment ( caat <-> caalc )

Author: Shi Shougang

Created: 2015-03-05 Thu 23:21

Emacs 24.3.1 (Org mode 8.2.10)

Validate